package com.alibaba.middleware.hsf.guide.client.hello;

import com.alibaba.middleware.hsf.guide.api.service.HelloWorldService;

import com.taobao.hsf.app.api.util.HSFApiConsumerBean;

/**
 * 订阅并消费一个普通的 HelloWorldService HSF 服务
 */
public class Start {
    public static void main(String[] args) throws Exception {
        // 设置 project.name，方便在 hsfops 中查到对应的应用名
        System.setProperty("project.name", "HSF-Guide-Client-Hello");

        // ---------------------- 装配 -----------------------//
        HSFApiConsumerBean hsfApiConsumerBean = new HSFApiConsumerBean();
        // [设置] 订阅服务的接口
        hsfApiConsumerBean.setInterfaceName("com.alibaba.middleware.hsf.guide.api.service.HelloWorldService");
        // [设置] 服务的版本
        hsfApiConsumerBean.setVersion("1.0.0");
        // [设置] 服务的组别
        hsfApiConsumerBean.setGroup("HSF");

        // ---------------------- 订阅 -----------------------//
        // [订阅] HSF 服务，同步等待地址推送，默认 false (异步)，同步默认超时时间 3000 毫秒
        hsfApiConsumerBean.init(true);

        // ---------------------- 代理 -----------------------//
        // [代理] 获取 HSF 代理
        HelloWorldService helloWorldService = (HelloWorldService) hsfApiConsumerBean.getObject();

        // ---------------------- 调用 -----------------------//
        // [调用] 像调用本地接口一样，发起 HSF 调用
        String hi = helloWorldService.sayHi("xiaozi");
        System.out.println(hi);
    }
}
